﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HeresyManager.Maligancies;

namespace HeresyManager
{
    [Serializable]
    public abstract class Maligancy : IMinMaxRole
    {
        public abstract String Name { get; }

        public virtual IEnumerator<Comunication.Comunicator> Accire(Character c) { if (false) yield return null; }
        public virtual void DeAccire(Character c) { }

        public static Maligancy[] Maligancies
        {
            get
            {
                return new Maligancy[]{
   new MaligancyPalsy(),
   new MaligancyDarkHearted(),
   new MaligancyIllFortuned(),
   new MaligancySkinAffactions(),
   new MaligancyNightEyes(),
   new MaligancyMorbid(),
   new MaligancyWitchMark(),
   new MaligancyFellObsession(),
   new MaligancyHatred(),
   new MaligancyIrrationalNausea(),
   new MaligancyWastedFrame(),
   new MaligancyNightTerrors(),
   new MaligancyPoorHealth(),
   new MaligancyDistrustful(),
   new MaligancyMaligSight(),
   new MaligancyAshenTast(),
   new MaligancyBloodlust(),
   new MaligancyBlackouts(),
   new MaligancyStrangeAddiction()
        };
            }
        }

        #region IMinMaxRole Members

        public abstract int MinRole { get; }

        public abstract int MaxRole { get; }

        #endregion
    }
}
